erosmax (Normal User)
Newbie
Messaggi: 5
Iscritto: 04/06/2012
|
Salve, per prima cosa ciao a tutti. Sono nuovo in questo forum.
Ora espongo le mia richiesa.
Avrei bisogno di un aiuto per come poter far confrontare un audio che ho salvato sull'HD con uno proveniente dal PC.
Mi spiego meglio:
Ho un file audio sul mio PC che leggo in Binario.
Vorrei che, all'esecuzione del mio programma, questo confronti il file (o parte) con un audio proveniene dagli altoparlanti (es:player web o musica sottofonfo) e mi dica se sono uguali (Es: una parte di canzone, oppure una frase di un personaggio).
Grazie per l'aiuto.
Ultima modifica effettuata da erosmax il 04/06/2012 alle 13:22 |
|
()
Newbie
Messaggi:
Iscritto:
|
Quello che chiedi è molto più complesso di quello che tu possa pensare.
Devi ottenere le informazioni audio (sampling) e normalizzarle per rate di acquisizione e ampiezza.
Poi dovresti calcolarne la densità spettrale (ESD) e poi misurare il MSE (mean squared error) ...
Nulla di tutto ciò è fattibile in realtime con VB6 ...
|
|
erosmax (Normal User)
Newbie
Messaggi: 5
Iscritto: 04/06/2012
|
Purtroppo lo so che è molto complicato.... ma non impossibile!
Io avevo trovato qualche esempio, che poteva fare al caso mio... ma dovrei studiarmelo mooolto a fondo.
Se non esiste nulla di più semplice, allora vorrà dire che il mio software attenderà parecchio prima di completarsi. :P
Ecco il link del sorgente free scaricabile:
AudioCardDSP by F. Languasco:
Acquisisce i segnali provenienti dalla scheda audio e li invia agli strumenti di analisi.
http://www.it-lang-vb.net/Archivio/Sorgenti/AudioCardDSP.Z ...
PS: Se non potevo linkare, cancellate e scusate!
Ultima modifica effettuata da erosmax il 04/06/2012 alle 18:48 |
|
()
Newbie
Messaggi:
Iscritto:
|
Quel codice, come da titolo, "acquisisce i segnali e li invia agli strumenti". Ma non fa confronti, no ?
|
|
erosmax (Normal User)
Newbie
Messaggi: 5
Iscritto: 04/06/2012
|
Infatti! Non fa confronti ma... come invia agli strumenti, si potrebbe inviare ad un confronto.
Devo studiare bene il codice e capire come fare il confronto.
Altrimenti, potrei caricare il file registrato ed "inviarlo agli strumenti" (quindi dovrebbe esserci un posto dove questi dati sono appoggiati) e confrontarli con gli stessi dell'audio in real-time!
Insomma, alle brutte, confrontare la banda d'onda... ma, è probabile, che si potrà fare anche "binariamente".
Ancora non gli ho dato un occhiata approfondita al sorgente, ma solamente testato se faceva quello a cui ero interessato... spero di riuscire nella cosa, anche se il tempo è assai tiranno per dedicarmene!
Ciao.
Ultima modifica effettuata da erosmax il 05/06/2012 alle 10:14 |
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da erosmax:
Infatti! Non fa confronti ma... come invia agli strumenti, si potrebbe inviare ad un confronto. |
Ma che c'entra? Inviare significa "passare dei dati", per confrontarli ci vogliono degli "algoritmi" ben precisi ... Le due cose sono completamente diverse ...
Devo studiare bene il codice e capire come fare il confronto. |
Allora non mi sono spiegato ... è inutile che studi quel codice ...
si potrà fare anche "binariamente". |
Va beh ... ho capito ... buona fortuna ... |
|
erosmax (Normal User)
Newbie
Messaggi: 5
Iscritto: 04/06/2012
|
Mai dire mai!.
Tu insisti nel dire che non è fattibile in VB6!
Infatti, ho chiesto aiuto in questo forum per poter vedere se qualcuno aveva qualche idea in merito ma ho ricevuto solo pareri negativi (per ora solo da te ).
Vabbene! Io non critico nessuno, per carità!
Tu sei libero di pensarla in questo modo ma io, non mi fermo davanti a nulla.
Non capisco.
Forse sarò io un nubbio ma... nella forms dell'Oscilloscopio è presente un Command "Store", che serve a campionare l'audio in entrata, e un Command "Replay Store" che visualizza ciò che è stato catturato!
Nel sorgente della form frmOScopio c'è quello che interessa.
Da qui, in Generale è dichiarato un vettoree Tracce&() che andrebbe a contenere i dati registrati.
Ora, se io pongo un tempo max di registrazione in real-time (tipo 1-2 sec per riconoscere una voce, o controllo solo quello durante l'intero processo di acquisizione) e Confronto (datiVettoreA = datiVettoreB) il Vettore con un'altro vettore in cui ho caricato precedentemente il mio piccolo audio registrato (o meglio, carico i dati da un file con i dati del vettore salvato in precedenza e, al partire del programma, lo ricarico con gli stessi)... dovrei aver trovato quello che mi serve, perché nessun dato sarà diverso se il sorgente è lo stesso!!!!
Ripeto il suono è lo stesso!!!!
Comunque, grazie per gli auguri di buona fortuna!
Ultima modifica effettuata da erosmax il 05/06/2012 alle 11:42 |
|